Ext.namespace('pages.p2p.hPlan.planXmSq');

pages.p2p.hPlan.planXmSq.Add = function(config) {
	Ext.apply(this, config);
	/** 操作类型 */
	this.operType = config.operType;
	this.initUIComponents();
	pages.p2p.hPlan.planXmSq.Add.superclass.constructor.call(this);
};
Ext.extend(pages.p2p.hPlan.planXmSq.Add, Ext.Window, {
	initUIComponents : function() {

		this.form = new Ext.form.FormPanel({
			region : 'north',
			layout : 'column',
			height : 280,
			labelWidth : 125,
			labelAlign : 'left',
			autoScroll : true,
			border : false,
			frame : false,
			title : 'H计划项目信息',
			bodyStyle : 'padding:5',

			items : [{
						columnWidth : 1,
						height : 10,
						border : false
					}, {
						columnWidth : 1,
						layout : 'form',
						border : false
					}, {
						columnWidth : 1,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '项目名称',
									xtype : 'textfield',
									name : 'XMMC',
									id : 'XMMC',
									allowBlank : false,
									value : 'H计划-',
									maxLength : 45,
									maxLengthText : '项目名称过长',
									anchor : '98%'
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [new Ext.form.ComboBox({
									fieldLabel : '期限（月）',
									name : 'QX_MONTH',
									id : 'QX_MONTH',
									anchor : '98%',
									store : new Ext.data.SimpleStore({
												fields : ['VALUE', 'TEXT'],
												data : [['1', '一个月'],
														['2', '二个月'],
														['3', '三个月'],
														['4', '四个月'],
														['5', '五个月'],
														['6', '六个月'],
														['7', '七个月'],
														['8', '八个月'],
														['9', '九个月'],
														['10', '十个月'],
														['11', '十一个月'],
														['12', '一年'],
														['18', '一年半'],
														['24', '两年']]
											}),
									valueField : 'VALUE',
									displayField : 'TEXT',
									hiddenName : 'QX_MONTH_VALUE',
									triggerAction : 'all',
									mode : 'local',
									editable : false,
									selectOnFocus : true,
									allowBlank : false,
									emptyText : '请选择...',
									value : '',
									listeners : {
										'select' : this.onQxMonthSelect
												.createDelegate(this)
									}
								})]
					}, {
						columnWidth : .5,
						layout : 'column',
						border : false,
						items : [{
							columnWidth : 0.75,
							layout : 'form',
							border : false,
							items : [{
										fieldLabel : '项目金额',
										xtype : 'numberfield',
										allowBlank : false,
										readOnly : true,
										regex : /^\d{1,10}(\.[0-9]{1,2}){0,1}$/,
										regexText : '项目金额不能大于9,999,999,999.99',
										name : 'XMJE',
										anchor : '99%',
										id : 'XMJE'
									}]
						}, {
							columnWidth : 0.25,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'button',
										id : 'btn_zq',
										text : '选择项目',
										handler : function() {
											this.onAdd();
										}.createDelegate(this)
									}]
						}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '年化收益率（%）',
									xtype : 'numberfield',
									regex : /^\d{1,2}(\.[0-9]{1,2}){0,1}$/,
									regexText : '请输入0到99.99之间的数值',
									allowBlank : false,
									allowNegative : false,
									// readOnly : true,
									name : 'NHSYL',
									id : 'NHSYL',
									anchor : '98%'
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '募集期（天）',
									xtype : 'numberfield',
									allowBlank : false,
									allowNegative : false,
									decimalPrecision : 0,
									name : 'MJQ',
									id : 'MJQ',
									maxLength : 2,
									maxLengthText : '募集期不能大于99天',
									anchor : '98%'
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [new Ext.form.ComboBox({
									fieldLabel : '还款类型',
									name : 'HKLX',
									id : 'HKLX',
									anchor : '98%',
									store : new Ext.data.SimpleStore({
												fields : ['VALUE', 'TEXT'],
												data : [['01', '按月付息,到期还本'],
														['02', '一次性到期还本付息']]
											}),
									valueField : 'VALUE',
									displayField : 'TEXT',
									hiddenName : 'HKLX_VALUE',
									triggerAction : 'all',
									mode : 'local',
									editable : false,
									selectOnFocus : true,
									allowBlank : false,
									value : '01'
								})]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '发标日期',
									xtype : 'datefield',
									allowBlank : false,
									anchor : '98%',
									name : 'FBSJ',
									format : 'Y-m-d',
									id : 'FBSJ',
									hideTrigger : true,
									value : new Date(),
									readOnly : true
								}]
					}, {
						columnWidth : 1,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '项目投标范围',
									xtype : 'textfield',
									name : 'TBFW',
									id : 'TBFW',
									maxLength : 250,
									maxLengthText : '审核备注不能超过250个字符',
									allowBlank : false,
									anchor : '99%'
								}]
					}, {
						columnWidth : 1,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '项目计划介绍',
									xtype : 'textarea',
									name : 'JHJS',
									id : 'JHJS',
									height : 80,
									maxLength : 500,
									maxLengthText : '审核备注不能超过500个字符',
									allowBlank : false,
									anchor : '99%'
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '发标用户',
									xtype : 'textfield',
									name : 'FBR',
									id : 'FBR',
									value : parent.gyh,
									readOnly : true,
									anchor : '98%'
								}]
					}, {
						columnWidth : .5,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '申请日期',
									xtype : 'datefield',
									allowBlank : false,
									anchor : '98%',
									name : 'SQSJ',
									format : 'Y-m-d',
									id : 'SQSJ',
									hideTrigger : true,
									value : new Date(),
									readOnly : true
								}]
					}]
		});

		this.store = new Ext.data.Store();
		var sm = new Ext.grid.CheckboxSelectionModel({
					singleSelect : true

				});
		var cm = new Ext.grid.ColumnModel([sm, new Ext.grid.RowNumberer(), {
					header : '项目名称',
					width : 100,
					sortable : true,
					dataIndex : 'XM_NAME'
				}, {
					header : '年化收益率',
					width : 120,
					sortable : true,
					dataIndex : 'XM_NH_SYL'
				}, {
					header : '项目金额',
					width : 130,
					sortable : true,
					dataIndex : 'XM_JE'
				}, {
					header : '期限(天)',
					width : 130,
					sortable : true,
					dataIndex : 'XM_QX_DAY'
				}, {
					header : '期限(月)',
					width : 130,
					sortable : true,
					dataIndex : 'XM_QX_MONTH'
				}, {
					header : '项目状态',
					width : 80,
					sortable : true,
					dataIndex : 'XM_ZT',
					renderer : function(v) {
						if ('1' == v) {
                            return "待审核";
                        } else if ('2' == v) {
                            return "信审通过";
                        } else if ('3' == v) {
                            return "信审失败";
                        } else if ('4' == v) {
                            return "招标中";
                        } else if ('5' == v) {
                            return "已截标";
                        } else if ('6' == v) {
                            return "投标完成";
                        } else if ('7' == v) {
                            return "还款完成";
                        }
					}
				}, {
					header : '项目自定义编号',
					width : 80,
					sortable : true,
					dataIndex : 'XM_ORDER'
				}, {
					header : '项目类型',
					width : 80,
					sortable : true,
					dataIndex : 'XM_TYPE',
					renderer : function(v) {
						if ('01' == v) {
							return "信用";
						} else if ('02' == v) {
							return "抵押";
						} else if ('03' == v) {
							return "车贷";
						}
					}
				}, {
					header : '信用级别',
					width : 80,
					sortable : true,
					dataIndex : 'XM_XYJB'
				}, {
					header : '计划介绍',
					width : 90,
					sortable : true,
					dataIndex : 'XM_JHJS'
				}, {
					header : '投标范围',
					width : 130,
					sortable : true,
					dataIndex : 'XM_TBFW'
				}, {
					header : '是否可用',
					width : 60,
					sortable : true,
					dataIndex : 'IS_USED',
					renderer : function(v) {
						if ('00' == v) {
							return "可用";
						} else if ('01' == v) {
							return "不可用";
						}
					}
				}, {
					header : '所属员工员工号',
					width : 60,
					sortable : true,
					dataIndex : 'XM_SS_GYH'
				}, {
					header : '入库时间',
					width : 60,
					sortable : true,
					dataIndex : 'IN_KU_DATE'
				}]);

		/**
		 * GridPanel
		 */
		this.grid = new Ext.grid.GridPanel({
					id : 'grid_add',
					region : 'center',
					store : this.store,
					title : '已选项目列表',
					border : true,
					frame : false,
					viewConfig : {
						autoFill : false,
						forceFit : false,
						focusRow : function() {
							return;
						},
						getRowClass : function(record, rowIndex, rowParams,
								store) {
							if (record.get("TOP_LEVEL") == "1") {
								return 'ux-grid-record-onTop';
							}
						}
					},
					sm : sm,
					cm : cm,
					tbar : [{
								id : 'add',
								iconCls : 'add',
								text : '选择项目',
								handler : this.onAdd.createDelegate(this)
							}, '-', {
								id : 'view',
								iconCls : 'view',
								text : '查看',
								handler : this.onView.createDelegate(this)
							}, '-', {
								id : 'deletet',
								iconCls : 'Delete',
								text : '移除',
								handler : this.onDelete.createDelegate(this)
							}],
					bbar : new Ext.PagingToolbar({
								pageSize : pageSize,
								store : this.store,
								displayInfo : true,
								displayMsg : '当前显示第 {0} - {1} 条 / 共 {2} 条',
								emptyMsg : "没有记录"
							})
				});

		Ext.apply(this, {
					id : 'form_addcg',
					title : '发标申请',
					border : false,
					layout : 'border',
					style : {
						marginRight : 'auto',
						marginLeft : 'auto'
					},
					width : 700,
					height : 540,
					modal : true,
					items : [this.form, this.grid],
					listeners : {
						'render' : this.initData.createDelegate(this)
					},
					tbar : [{
								text : '发起申请',
								iconCls : 'save',
								hidden : 'add' == this.operType ? false : true,
								handler : this.onSave.createDelegate(this)
							}, {
								text : '关闭',
								iconCls : 'close',
								handler : this.onCancel.createDelegate(this)
							}]
				});
	},

	initData : function() {
	},
	onAdd : function() {
		var qxMonth = Ext.getCmp('QX_MONTH').getValue();
		if (undefined == qxMonth || '' == qxMonth) {
			Ext.Msg.alert('提示', '请选择期限(月)');
			Ext.getCmp('QX_MONTH').focus();
			return;
		}
		this.wint = new pages.p2p.hPlan.planXmSq.AddBaseXm({
					operType : 'add',
					qxMonth : qxMonth
				});
		this.wint.show();
	},
	onView : function() {
		var record = this.grid.getSelectionModel().getSelected();
		if (!record) {
			ExtJ.showMessage("请选择一条需要查看的记录!");
			return;
		}
		var win = new pages.p2p.hPlan.planXmSq.ViewBase({
					operType : 'view',
					record : record
				});
		win.show();
	},
	onDelete : function() {
		var record = this.grid.getSelectionModel().getSelected();
		if (!record) {
			ExtJ.showMessage("请选择一条需要移除的记录!");
			return;
		}
		Ext.Msg.confirm("确认", "你确定要移除信息吗?", function(fn) {
					if (fn == 'yes') {
						this.grid.getStore().remove(record);
						var sy = Ext.getCmp('grid_add').getStore().sum('SY');
						var sum = Ext.getCmp('grid_add').getStore()
								.sum('XM_JE');
						Ext.getCmp('XMJE').setValue(sum);
					}
				}.createDelegate(this));
	},
	onSave : function() {
		var xmmc = Ext.getCmp("XMMC").getValue();
		if ('' == xmmc) {
			Ext.Msg.alert('提示', '项目名称不能为空！');
			return;
		} else if (xmmc.length > 45) {
			Ext.Msg.alert('提示', '项目名称字数不能超过45字！');
			return;
		}
		var qx_month = Ext.getCmp("QX_MONTH").getValue();
		if (undefined == qx_month || '' == qx_month) {
			Ext.Msg.alert('提示', '请选择期限(月)');
			Ext.getCmp('QX_MONTH').focus();
			return;
		}
		var xmje = Ext.getCmp("XMJE").getValue();
		if (undefined == xmje || '' == xmje) {
			Ext.Msg.alert('提示', '请至少选择2个项目！');
			Ext.getCmp('XMJE').focus();
			return;
		}
		var nhsyl = Ext.getCmp("NHSYL").getValue();
		var re = new RegExp(/^\d{1,2}(\.[0-9]{1,2}){0,1}$/);
		if ('' == nhsyl) {
			Ext.Msg.alert('提示', '年化收益率不能为空！');
			return;
		} else if (!re.test(nhsyl)) {
			Ext.Msg.alert('提示', '年化收益率格式不正确！请输入0到99.99之间的数值！');
			return;
		}

		var mjq = Ext.getCmp("MJQ").getValue();
		if (undefined == mjq || '' == mjq) {
			Ext.Msg.alert('提示', '请输入募集期');
			Ext.getCmp('MJQ').focus();
			return;
		}
		var hklx = Ext.getCmp("HKLX").getValue();

		var tbfw = Ext.getCmp("TBFW").getValue();
		if ('' == tbfw.trim()) {
			Ext.Msg.alert('提示', '项目投标范围不能为空！');
			return;
		} else if (tbfw.trim().length > 250) {
			Ext.Msg.alert('提示', '项目投标范围不能大于250字！');
			return;
		}
		var jhjs = Ext.getCmp("JHJS").getValue();
		if ('' == jhjs.trim()) {
			Ext.Msg.alert('提示', '项目计划介绍不能为空！');
			return;
		} else if (jhjs.trim().length > 500) {
			Ext.Msg.alert('提示', '项目计划介绍不能大于500字！');
			return;
		}
		var count = this.grid.getStore().getCount();
		if (count > 1) {
			var gridId = this.grid.getStore().getAt(0).get('ID');
			for (var i = 1; i < count; i++) {
				gridId = gridId + "," + this.grid.getStore().getAt(i).get('ID');
			}
		} else {
			Ext.Msg.alert('提示', '请至少选择2个项目！');
			Ext.getCmp('XMJE').focus();
			return;
		}
		if (!this.form.getForm().isValid()) {
			Ext.Msg.alert('提示', '页面输入的有误,请按照要求输入!');
			return;
		}
		Ext.getBody().mask("正在保存,请稍候...");
		this.form.getForm().submit({
					method : 'post',
					url : ExtJ.getActionPath('hPlan/saveXmSq.do'),
					params : {
						xmmc : xmmc,
						nhsyl : nhsyl,
						qx_month : qx_month,
						mjq : mjq,
						xmje : xmje,
						gridId : gridId,
						tbfw : tbfw,
						jhjs : jhjs,
						hklx : hklx
					},
					reset : false,
					success : function(option, action) {
						var text = Ext.decode(action.response.responseText);
						Ext.Msg.alert('提示', text.msg);
						if (text.isSuc) {
							Ext.getCmp('grid').getStore().reload();
							this.close();
						}
						Ext.getBody().unmask(true);
					}.createDelegate(this)
				});
	},
	onCancel : function() {
		this.close();
	},
	onQxMonthSelect:function(){
		this.grid.getStore().removeAll();
		Ext.getCmp('XMJE').setValue('');
	}
});